import Vue from 'vue';
import axios from "axios"


import Uitis from "@/public/libs/Utils"
import filter from "@/public/libs/filter"
import $ from "@/public/libs/zepto";

import 'normalize.css';
import '@/public/style/base.css';


import MintUI from 'mint-ui';
import '@/public/style/style.css';
import Interface from "@/GlobalData";

import { Toast, Indicator } from 'mint-ui';

Vue.use(MintUI);

Vue.config.productionTip = false;
Vue.prototype.$http = axios;
Vue.prototype.Axios = axios;
Vue.prototype.Interface = Interface;
Vue.prototype.Uitis = Uitis;
Vue.prototype.Toast = Toast;
Vue.prototype.Indicator = Indicator;
window.APP = Uitis;

// Axios 请求拦截器
axios.interceptors.request.use(function (config) {
	// 在发送请求之前做些什么
	Indicator.open('加载中...');
	return config;
}, function (error) {
	// 对请求错误做些什么
	Toast("请求过程中发生了错误");
	console.log("请求过程发生的错误消息：" + error);
	return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
	Indicator.close();
	// 对响应数据做点什么
	try {
		if (typeof (response.data.data) == "string") {
			var Data = JSON.parse(response.data.data);
			response.data.data = Data
		}
	} catch (e) {
		Toast("处理返回的数据发生异常~");
	}
	return response;
}, function (error) {
	// 对响应错误做点什么
	Indicator.close();
	// Toast("返回数据过程中发生了错误~");
	console.log("错误消息：" + error);
	return Promise.reject(error);
});

Vue.filter('valid', function (value) {
	if (!value) { return '?' }
	if (value * 1 <= 0 || (value * 1) % 1000 != 0 || value * 1 > 100000) {
		return "?"
	}else{
		return value;
	}
});

// 暴露实例化的内容
export default (Index) => {
	// 实例化VUE
	new Vue({
		el: "#app",
		template: "<Index/>",
		components: {
			Index
		}
	});
};
